package sorting2;

public class CountingSort {
	
	public int[] countingSort(int[] array) {
		int maiorNumero = Integer.MIN_VALUE;
		
		for (int i = 0; i < array.length; i++){
			if (array[i] > maiorNumero){
				maiorNumero = array[i];
			}
		}
		
		int[] arrayC = new int[maiorNumero+1];
		int[] arrayB = new int[array.length];
		
		for (int i = 0; i < arrayC.length; i++){
			arrayC[i] = 0;
		}
		
		for (int i = 0; i < array.length; i++ ){
			arrayC[array[i]] = arrayC[array[i]] + 1;
		}
		
		for (int i = 1; i < arrayC.length; i++ ){
			arrayC[i] = arrayC[i] + arrayC[i - 1];
		}
		
		for (int i = 0; i < array.length; i++ ){
			arrayC[array[i]] = arrayC[array[i]] - 1;
			arrayB[arrayC[array[i]]] = array[i];
		}
		
		return arrayB;
	}

}